﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.Collections;
using Entidad;
using Datos.EntityFramework;
namespace Datos
{
    public class clsClienteDAO
    {
        BD_HOTEL_Entities bd = new BD_HOTEL_Entities();


        public List<SRH_CLIENTE> listarClientes()
        {

            List<SRH_CLIENTE> lista = new List<SRH_CLIENTE>();
            try
            {
                var q = from c in bd.SRH_CLIENTE
                        select c;
                lista = q.ToList();

            }
            catch (Exception)
            {
            }
            return lista;
        }



        public bool Insertar(SRH_CLIENTE Obj)
        {
            try
            {
                bd.AddObject("SRH_CLIENTE", Obj);
                bd.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }

        public bool Modificar(SRH_CLIENTE obj)
        {
            try
            {
                bd.AttachTo("SRH_CLIENTE", obj);
                bd.ObjectStateManager.ChangeObjectState(obj, System.Data.EntityState.Modified);
                bd.SaveChanges();
            }
            catch (Exception)
            {
                return false;

            }
            return true;
        }

        public bool Eliminar(SRH_CLIENTE obj)
        {
            try
            {
                bd.AttachTo("SRH_CLIENTE", obj);
                bd.DeleteObject(obj);
                bd.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }

       public bool Actualiza_EstadoCliente(string estado, string id_cliente)
        {
            try
            {
                bd.ExecuteStoreCommand("update SRH_CLIENTE set ind_estado='" + estado + "' where des_cliente='" + id_cliente + "'");

                return true;
            }
            catch
            {
                return false;
            }
        }
        
        public bool PA_insertarCliGrupo(string ID_CLIENTE, int ID_GRUPO)
        {
            try
            {
            bd.ExecuteStoreCommand("exec USP_SAVE_CLIENTEGRUPO '" + ID_CLIENTE + "'," + ID_GRUPO);
            return true;
            }
            catch
            {

                return false;
            }


            

        }
        
        public bool PA_delteCliGrupo(string ID_CLIENTE)
        {

            try
            {

                bd.ExecuteStoreCommand("exec USP_DELETE_USUARIOGRUPO '" + ID_CLIENTE + "'");
            return true;
            }
            catch 
            {
                return false;
                
            }








        }
        
        
        public string EncriptarPassword(string password)
        {

            try
            {
            bd.ExecuteStoreCommand("exec USP_ENCRIPTAR_PASSWORD '" + password+"'");
            return password;
            }
            catch (Exception)
            {

                return null;
               
            }

           
           
           
           

           

        }
        
        public bool DescencriptarPassword(string id_usuario,string des_password)
        {

            try
            {

            bd.ExecuteStoreCommand("update DSH_Cliente set des_password='" + des_password + "'where des_usuario='"+id_usuario+"'");

            return true;
            }
            catch 
            {
                return false;
            }







        }

        //public string EncriptarPasswordUser(string PASWORD)
        //{
        //    string var = "";
        //    try
        //    {
        //        List<string> lis = bd.USP_ENCRIPTAR_PASSWORD(PASWORD).ToList();
        //        var =lis[0].ToString();
             
        //    }
        //    catch (Exception)
        //    {
        //        return "";
        //    }

        //    return var;
        //}

        //public string DesEncriptarUser(string PASWORD)
        //{


        //    try
        //    {
        //        List<string> lis = bd.USP_DESENCRIPTAR_PASSWORD(PASWORD).ToList();

        //        return lis[0].ToString();
        //    }
        //    catch (Exception)
        //    {

        //        return null;
        //    }


        //}

        public List<SRH_CLIENTE> listarUser(string username)
        {
            List<SRH_CLIENTE> lista = new List<SRH_CLIENTE>();
            try
            {
                var q = from c in bd.SRH_CLIENTE
                        where c.usuario == username
                        select c;
                lista = q.ToList();

            }
            catch (Exception)
            {
            }
            return lista;

        }






      
        


            public bool actualizarPassword(string password,string email) {


                try
                {
                    bd.ExecuteStoreCommand("UPDATE T_SEG_USUARIO SET DES_PASSWORD='" + password + "' where  DES_EMAIL='" + email + "'");
                    return true;
                }
                catch 
                {
                    return false;
                  
                }

               


            }



            public List<SRH_CLIENTE> TraerEmail(string idusuario)
            {

                {
                    var q = (from u in bd.SRH_CLIENTE
                             where u.nroDocumento == idusuario
                             select u).Take(1);
                    return q.ToList();
                }

            }








        }
}
